package com.flydog.mall.service.pms;

import com.flydog.mall.common.api.PageResponse;
import com.flydog.mall.dto.PmsBrandParam;
import com.flydog.mall.entity.pms.PmsBrand;


import java.util.List;
import java.util.Optional;

/**
 * @author Cao
 * @description 品牌管理服务
 * @create 2021-03-18
 */

public interface PmsBrandService {
    /**
     * 创建品牌
     * @param brandParam 传入参数
     * @return 创建数量
     */
    int create(PmsBrandParam brandParam);

    /**
     * 获取品牌信息
     * @param id 品牌编号（主键）
     * @return 品牌信息
     */
    Optional<PmsBrand> getBrand(long id);

    /**
     * 分页获取品牌列表
     * @param keyword 名称关键字
     * @param pageNum 页码
     * @param pageSize 页面大小
     * @return 分页数据
     */
    PageResponse<PmsBrand> listBrand(String keyword, int pageNum, int pageSize);

    /**
     * 所有品牌的列表
     * @return 所有品牌的列表
     */
    List<PmsBrand> listAll();

    /**
     * 删除品牌
     * @param id 品牌id
     * @return 删除的数量
     */

    int delete(long id) throws Exception;

    /**
     * 更新品牌数据
     * @param id 品牌id
     * @param brand 品牌信息
     * @return 更新数量
     */

    int update(long id, PmsBrandParam brand);

    /**
     * 批量修改厂家状态
     * @param ids 品牌编号
     * @param factoryStatus 状态值
     * @return 修改数量
     */
    int updateFactoryStatus(List<Long> ids, Integer factoryStatus);

    /**
     * 批量修改显示状态
     * @param ids 品牌编号
     * @param showStatus 状态值
     * @return 修改数量
     */
    int updateShowStatus(List<Long> ids, Integer showStatus);
}
